﻿/*
 ============== 读取名为TestSharedMemory共享内存 ============
 */

using System;
using System.IO.MemoryMappedFiles;

namespace ConsoleTest1
{
    class Program
    {
        static void Main(string[] args)
        {
            // 打开一个名为TestSharedMemory的共享内存对象
            using (MemoryMappedFile mmf = MemoryMappedFile.CreateOrOpen("TestSharedMemory", 256))
            {
                // 获取共享内存的使用权限，并使用这个权限对象操作内存
                MemoryMappedViewAccessor memhandler = mmf.CreateViewAccessor(0, 256); 
                byte[] buffer = new byte[256]; // 准备一个buffer用于接收

                // 从共享内存中读取
                memhandler.ReadArray<byte>(0, buffer, 0, 256);
                string recvStr = System.Text.Encoding.Default.GetString(buffer);
                Console.WriteLine(recvStr);

                // 阻塞主线程以便看到效果
                System.Threading.Thread.Sleep(10000);
            }
        }
    }
}
